knitr::opts_chunk$set(echo = TRUE)
# Carga de paquetes
library(dplyr)
library(sf)
library(DT)
library(plotly)
library(leaflet)
# Registros de presencia de JUnco vulcani
primates <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/primates-cr-registros.csv",
options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
# Asignacion de CRS
st_crs(primates) = 4326
# Capa geoespacil de cantones
# Carga de la capa de cantones
cantones <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
quiet = TRUE
)
# Cruce espacial con la tabla de cantones, para obtener el nombre del cantón
primates <-
primates %>%
st_join(cantones["canton"])
Se utilisa el conjunto de datos sobre 4 especies de primates de Costa Rica.
# Tabla de registros de presencia
primates %>%
st_drop_geometry() %>%
select(family, species, stateProvince, canton, locality, eventDate) %>%
datatable(
colnames = c("Familia","Especie","Provincia", "Canton", "Localidad", "Fecha"),
options = list(searchHighlight = TRUE)
)
# cargar colores
colors <- c('rgb(211,94,96)', 'rgb(128,133,133)', 'rgb(144,103,167)', 'rgb(171,104,87)')
#grafico pastel
plot_ly(
primates,
labels = ~ species,
type = "pie",
textposition = "inside",
textinfo = "label+percent",
insidetextfont = list(color = "#FFFFFF"),
marker = list(colors = colors)) %>%
layout(
title = "Cantidad de registros para cada especie de primate",
xaxis = list(
showgrid = FALSE,
zeroline = FALSE,
showticklabels = FALSE
),
yaxis = list(
showgrid = FALSE,
zeroline = FALSE,
showticklabels = FALSE
)
)
# Selección de la especie de primate (por atributos)
# capa de Ateles geoffroyi
Ateles_geoffroyi <-
primates %>%
filter(species == "Ateles geoffroyi")
# capa de Cebus capucinus
Cebus_capucinus <-
primates %>%
filter(species == "Cebus capucinus")
# capa de Alouatta palliata
Alouatta_palliata <-
primates %>%
filter(species == "Alouatta palliata")
# capa de Saimiri oerstedii
Saimiri_oerstedii <-
primates %>%
filter(species == "Saimiri oerstedii")
# Mapa de registros de presencia
primates %>%
select(stateProvince,
canton,
locality,
eventDate,
family,
species) %>%
leaflet() %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Imágenes de ESRI") %>%
addCircleMarkers(
stroke = F,
radius = 4,
fillColor = 'green',
fillOpacity = 1,
popup = paste(
Ateles_geoffroyi$stateProvince,
Ateles_geoffroyi$canton,
Ateles_geoffroyi$locality,
Ateles_geoffroyi$eventDate,
Ateles_geoffroyi$family,
Ateles_geoffroyi$species,
sep = '<br/>'
),
group = "Ateles_geoffroyi"
) %>%
addLayersControl(
baseGroups = c("OpenStreetMap", "Imágenes de ESRI"),
overlayGroups = c("Primates")
) %>%
addMiniMap(
tiles = providers$Stamen.OpenStreetMap.Mapnik,
position = "bottomleft",
toggleDisplay = TRUE
)